home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / progutil / stdwin.zoo / README < prev    next >
Text File  |  1989-10-17  |  6KB  |  163 lines

  1. Project:    STDWIN -- A STandarD Window system INterface
  2. Author:        Guido van Rossum
  3. Started:    Originally: March, 1987
  4.         This setup: August 27, 1987
  5.         Last edit of this file: May 27, 1988
  6.  
  7. Installation hints
  8. ------------------
  9.  
  10. STDWIN is currently not really a well-behaved product.  Nevertheless,
  11. you may try to configure it on a Unix system as follows (this has only
  12. been tried on 4.2/4.3 BSD systems or derivatives such as Ultrix 2.0):
  13.  
  14. 1)    Edit the configuration files in conf.
  15. 2)    Edit the top-level Makefile.
  16. 3)    Type 'make -k makefiles' at the top level.  This creates all makefiles
  17.     in subdirectories.  It will also complain about some non-existent
  18.     directories, since I don't distribute evetything.  Sorry.
  19. 4)    Type 'make alfa' in the top-level directory to make the alphanumeric
  20.     (termcap) library.
  21. 5)    Type 'make x11' in the top-level directory to make the X11 library.
  22.  
  23. Obviously, the trick is to know what to change in (1) and (2).
  24. Have a look at conf/mkmk to see what it does, and edit it to know about
  25. your hostname.  The top level Makefile usually doesn't need adaptations
  26. except if you want to have different default rules.
  27.  
  28. The Makefile in subdirectories are automatically created as necessary by
  29. the top-level Makefile.
  30.  
  31. To create test applications, go to the 'test' subdirectory, and type
  32. 'make alla' (to make all alfa test programs) and 'make allx' (to make
  33. all X11 test programs).  The executables will be named *.A and *.X.
  34. Different versions of an application can co-exist in one subdirectory;
  35. all STDWIN versions are binary compatible, so relinking
  36. is all you need to do: the .o files can be used with either library.
  37. To create the mini editor demo applications, go to the 'miniedit'
  38. subdirectory, and type 'make miniedit.A miniedit.X'.  This will make two
  39. versions.
  40.  
  41.  
  42. What belongs in which directory
  43. -------------------------------
  44.  
  45. (Note: it is unlikely that you have received all directories.
  46. Ignore comments on directories you haven't got.)
  47.  
  48. paper/        Source for the CWI Report describing STDWIN.
  49.  
  50. man/        Some man pages.
  51.  
  52. doc/        Documentation (currently a mess)
  53.  
  54. h/        Header files used in more than one subdirectory.
  55.         These are completely independent of the version used!
  56.         E.g.: stdwin.h, stdtext.h, stdevent.h, l_defs.h
  57.         Also tools.h, which defines bool etc.
  58.  
  59. tools/        Routines that only need libc to run (i.e., below STDWIN).
  60.  
  61. gen/        Various routines for stdwin that are common between
  62.         (some) versions, e.g., waskfile.
  63.  
  64. textedit/    The text-edit package.
  65.  
  66. alfa/        STDWIN version for alfa terminals (Unix, MS-DOS)
  67.         Also needs one of vtrm, ptrm, atrm.
  68.  
  69. atari/        STDWIN version for Atart ST (using Mark Williams C)
  70.  
  71. mg1/        STDWIN version for Whitechapel MG-1 (4.2 BSD)
  72.  
  73. mac/        STDWIN version for Apple Macintosh (using Lightspeed or MPW C)
  74.  
  75. x11/        STDWIN version for MIT's X Window System, protocol version 11
  76.  
  77. vtrm/        VTRM implementation for Unix (needed by "alfa")
  78.  
  79. ptrm/        VTRM implementation for MS-DOS
  80.  
  81. atrm/        VTRM implementation for Amoeba (same as vtrm except ioctls)
  82.  
  83. stubs/        STDWIN version for Amoeba network
  84.  
  85. server/        Server for Amoeba network
  86.  
  87. proto/        Prototype STDWIN version (not up-to-date).
  88.         Use as a starter for new implementations
  89.  
  90. Applications
  91. ------------
  92.  
  93. op/        Outline Processor, somewhat like ACTA on the Mac.
  94.  
  95. ubr/        Universal Browser, text-only 'Finder' for Unix, Mac and
  96.         Amoeba.
  97.  
  98. dpv/        Ditroff PreViewer.
  99.  
  100. qview/        Line printer queue viewing program.
  101.  
  102. wnote/        Amoeba message service.
  103.  
  104. bed/        Bitmap EDitor, compatible with X11 bitmap format.
  105.  
  106. vt/        A Virtual Terminal program, of possible use if you need
  107.         to implement terminal emulation using STDWIN
  108.         (Implements a VT100 subset).
  109.  
  110. miniedit/    Trivial multi-window text editor.
  111.  
  112. test/
  113.     faced        simple 48x48 bitmap editor, edits files in .face format
  114.     bits        trivial bitmap editor (no save facilities)
  115.     klok        analog clock (rather ugly)
  116.     dklock        digital clock (even uglier)
  117.     charset        display character set
  118.     test[0-4]    various test programs
  119.  
  120. How it fits together
  121. --------------------
  122.  
  123. You can make a number of versions here: in alfa, mg1, X11 or stubs.
  124. Notes: You can make mg1 only on a Whitechapel MG-1.  You can make stubs
  125. only on a machine running Amoeba.  Etc.
  126. Non-Unix machines: On the Mac, use files from mac; see instructions
  127. there.  On MS-DOS, you can make an alfa version using ptrm.
  128.  
  129. All versions need tools and gen.
  130. The alfa version needs vtrm (but on MS-DOS, use ptrm instead).
  131. Applications using it must be linked with -ltermcap.
  132. Applications using the stubs version must be linked with -lamoeba.
  133. Applications using the mg1 version must be linked with
  134. <all the window manager libraries>.
  135. Applications using the X11 version must be linked with -lX11.
  136.  
  137. The server is an application to be used with the alfa, x11 or mg1 version
  138. (using it with the stubs version appears pointless).  It needs -lamoeba
  139. as well.
  140.  
  141. The use of mkmk
  142. ---------------
  143.  
  144. With a project of this size you can't trust your Makefiles anymore.
  145. The shell script 'mkmk' should be used to generate a Makefile, with
  146. complete dependencies etc., from information lying around:
  147.     - conf/Generic        Standard definitions
  148.     - conf/Rules        Standard rules
  149.     - conf/Sys.<version>    System-dependent definitions
  150.     - conf/Site.<shost>    Site-dependent definitions
  151.     - Make.conf        The essence of the local Makefile
  152. Plus dependencies generated from the sources.
  153.  
  154. What I should really have done
  155. ------------------------------
  156.  
  157. For each version, create a separate directory where all .o files are
  158. collected.  This way, a single source file can produce different objects
  159. (guided by -I and/or -D options to cc).  The advantage of the current
  160. scheme, however, is that it reduces the number of compilations if
  161. multiple versions are being generated on the same machine (e.g., alfa
  162. and MG-1 or X11 are usually available on the same machine).
  163.